home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / esc.jar / com / extensibility / xa / SchemaInfo.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-06-30  |  7.7 KB  |  207 lines

  1. package com.extensibility.xa;
  2.  
  3. import com.extensibility.app.UI;
  4. import com.extensibility.rock.RDialog;
  5. import com.extensibility.xml.ExtraMetaDataUIIntf;
  6. import com.extensibility.xml.MetaPropHash;
  7. import java.awt.BorderLayout;
  8. import java.awt.Component;
  9. import java.awt.Container;
  10. import java.awt.Dialog;
  11. import java.awt.Font;
  12. import java.awt.Frame;
  13. import java.awt.GridBagConstraints;
  14. import java.awt.GridBagLayout;
  15. import java.awt.Window;
  16. import java.util.Hashtable;
  17. import javax.swing.BorderFactory;
  18. import javax.swing.Box;
  19. import javax.swing.JButton;
  20. import javax.swing.JComponent;
  21. import javax.swing.JDialog;
  22. import javax.swing.JLabel;
  23. import javax.swing.JPanel;
  24. import javax.swing.JScrollPane;
  25. import javax.swing.JTabbedPane;
  26. import javax.swing.JTextArea;
  27. import javax.swing.JTextField;
  28. import javax.swing.border.EmptyBorder;
  29.  
  30. public class SchemaInfo extends RDialog {
  31.    Frame parent;
  32.    JLabel lblNSPrompt;
  33.    JTextArea fldNS;
  34.    JLabel lblPrefix;
  35.    JTextArea fldPrefix;
  36.    JTextArea txtStats;
  37.    JButton btnOK;
  38.    JButton btnCancel;
  39.    JTextField[] metaPropFld;
  40.    JTabbedPane tabPane;
  41.    SchemaDoc doc;
  42.    boolean confirmed;
  43.  
  44.    public SchemaInfo(Frame var1, SchemaDoc var2) {
  45.       super(var1, true);
  46.       this.doc = var2;
  47.       this.prepare();
  48.    }
  49.  
  50.    private String getStats() {
  51.       StringBuffer var1 = new StringBuffer();
  52.       String var2 = System.getProperty("line.separator");
  53.       Class[] var3 = new Class[]{Class.forName("com.extensibility.xml.ElementDeclaration"), Class.forName("com.extensibility.xml.AttributeDeclaration"), Class.forName("com.extensibility.xml.InternalGEDeclaration"), Class.forName("com.extensibility.xml.ExternalGEDeclaration"), Class.forName("com.extensibility.xml.InternalPEDeclaration"), Class.forName("com.extensibility.xml.ExternalPEDeclaration"), Class.forName("com.extensibility.xml.DataTypeDeclaration"), Class.forName("com.extensibility.xml.NamespaceDeclaration"), Class.forName("com.extensibility.xml.ExternalSubset"), Class.forName("com.extensibility.xml.NotationDeclaration"), Class.forName("com.extensibility.xml.ProcessingInstruction")};
  54.       String[] var4 = new String[]{"com.extensibility.xml.ElementDeclaration", "com.extensibility.xml.AttributeDeclaration", "com.extensibility.xml.InternalGEDeclaration", "com.extensibility.xml.ExternalGEDeclaration", "com.extensibility.xml.InternalPEDeclaration", "com.extensibility.xml.ExternalPEDeclaration", "com.extensibility.xml.DataTypeDeclaration", "com.extensibility.xml.NamespaceDeclaration", "com.extensibility.xml.ExternalSubset", "com.extensibility.xml.NotationDeclaration", "com.extensibility.xml.ProcessingInstruction"};
  55.  
  56.       for(int var5 = 0; var5 < var3.length; ++var5) {
  57.          int var6 = this.doc.getCount(var3[var5]);
  58.          if (this.doc.isSupported(var3[var5])) {
  59.             String var7 = UI.getString(var6 == 1 ? var4[var5] : String.valueOf(var4[var5]).concat(String.valueOf("s")));
  60.             var1.append(String.valueOf(String.valueOf(String.valueOf(String.valueOf(" ").concat(String.valueOf(var6))).concat(String.valueOf(" "))).concat(String.valueOf(var7))).concat(String.valueOf(var2)));
  61.          }
  62.       }
  63.  
  64.       return var1.toString();
  65.    }
  66.  
  67.    public void prepare() {
  68.       ((Dialog)this).setTitle(UI.getString("dialog.schema.info.title"));
  69.       this.tabPane = new JTabbedPane();
  70.       Font var1 = UI.getAppFont();
  71.       if (var1 != null) {
  72.          this.tabPane.setFont(var1);
  73.       }
  74.  
  75.       this.lblNSPrompt = new JLabel(UI.getString("dialog.schema.info.ns.prompt"));
  76.       String var2 = this.doc.getNamespace() == null ? "" : this.doc.getNamespace().toSource();
  77.       this.fldNS = UI.createTextArea(true);
  78.       this.fldNS.setRows(2);
  79.       this.fldNS.setBorder(UI.createTextField().getBorder());
  80.       this.fldNS.setText(var2);
  81.       this.lblPrefix = new JLabel(UI.getString("dialog.schema.info.prefix.prompt"));
  82.       String var3 = this.doc.getSchemaPrefix() == null ? "" : this.doc.getSchemaPrefix();
  83.       this.fldPrefix = UI.createTextArea(true);
  84.       this.fldPrefix.setBorder(UI.createTextField().getBorder());
  85.       this.fldPrefix.setText(var3);
  86.       this.txtStats = UI.createTextArea(false);
  87.       this.txtStats.setBorder(BorderFactory.createTitledBorder(UI.getString("dialog.schema.info.stat.title")));
  88.       this.txtStats.setBackground(((Component)this).getBackground());
  89.       this.txtStats.setText(this.getStats());
  90.       this.txtStats.setLineWrap(false);
  91.       this.btnOK = new JButton(UI.getString("dialog.ok"));
  92.       this.btnOK.addActionListener(new 1(this));
  93.       this.btnOK.setMnemonic(UI.getMnemonic("dialog.ok"));
  94.       this.btnCancel = new JButton(UI.getString("dialog.cancel"));
  95.       this.btnCancel.addActionListener(new 2(this));
  96.       this.btnCancel.setMnemonic(UI.getMnemonic("dialog.cancel"));
  97.       ((JDialog)this).getContentPane().setLayout(new BorderLayout());
  98.       JPanel var4 = new JPanel(new GridBagLayout());
  99.       ((JComponent)var4).setAlignmentY(0.0F);
  100.       GridBagConstraints var5 = new GridBagConstraints();
  101.       var5.fill = 2;
  102.       var5.weightx = (double)1.0F;
  103.       var5.anchor = 17;
  104.       var5.insets.left = 12;
  105.       var5.insets.right = 12;
  106.       var5.insets.top = 4;
  107.       var5.gridy = 0;
  108.       ((Container)var4).add(this.lblPrefix, var5);
  109.       var5.gridy = 1;
  110.       var5.weightx = (double)0.5F;
  111.       ((Container)var4).add(this.fldPrefix, var5);
  112.       var5.gridy = 2;
  113.       var5.weightx = (double)1.0F;
  114.       ((Container)var4).add(this.lblNSPrompt, var5);
  115.       var5.gridy = 3;
  116.       ((Container)var4).add(this.fldNS, var5);
  117.       JPanel var6 = new JPanel(new GridBagLayout());
  118.       var5.gridy = 4;
  119.       var5.fill = 1;
  120.       var5.weighty = (double)1.0F;
  121.       var5.insets.top = 8;
  122.       var5.insets.bottom = 8;
  123.       ((Container)var6).add(this.txtStats, var5);
  124.       JScrollPane var7 = null;
  125.       ExtraMetaDataUIIntf var8 = this.doc.getExtraMetaDataUI();
  126.       int var9 = var8 == null ? 0 : var8.getExtraColumnCount(5);
  127.       this.metaPropFld = new JTextField[var9];
  128.       if (var9 > 0) {
  129.          MetaPropHash var10 = this.doc.schema.getMetaPropHash();
  130.          JPanel var11 = new JPanel(new GridBagLayout());
  131.          var7 = new JScrollPane(var11);
  132.          var5 = new GridBagConstraints();
  133.          var5.fill = 2;
  134.          var5.weightx = (double)1.0F;
  135.          var5.anchor = 17;
  136.          var5.insets.left = 12;
  137.          var5.insets.right = 12;
  138.          var5.insets.top = 4;
  139.  
  140.          for(int var12 = 0; var12 < var9; ++var12) {
  141.             String var13 = var8.getColumnMetaProp(5, var12);
  142.             String var14 = var8.getColumnName(5, var12);
  143.             String var15 = (String)((Hashtable)var10).get(var13);
  144.             ++var5.gridy;
  145.             JLabel var16 = new JLabel(var14);
  146.             ((Container)var11).add(var16, var5);
  147.             ++var5.gridy;
  148.             this.metaPropFld[var12] = UI.createTextField(var15);
  149.             ((Container)var11).add(this.metaPropFld[var12], var5);
  150.          }
  151.       }
  152.  
  153.       JPanel var18 = new JPanel();
  154.       ((Container)var18).add(this.btnOK);
  155.       ((Container)var18).add(Box.createHorizontalStrut(8));
  156.       ((Container)var18).add(this.btnCancel);
  157.       this.tabPane.addTab("Namespace", var4);
  158.       this.tabPane.addTab("Statistics", var6);
  159.       if (var7 != null) {
  160.          this.tabPane.addTab(var8.getExtensionsName(), var7);
  161.       }
  162.  
  163.       this.tabPane.setBorder(new EmptyBorder(8, 8, 4, 8));
  164.       ((JDialog)this).getContentPane().add(this.tabPane, "Center");
  165.       ((JDialog)this).getContentPane().add(var18, "South");
  166.       ((Window)this).pack();
  167.       ((Component)this).setSize(354, 310);
  168.       this.fldNS.requestFocus();
  169.       ((RDialog)this).installEscape(this.btnCancel);
  170.       ((RDialog)this).installDefault(this.btnOK);
  171.    }
  172.  
  173.    public String getNamespace() {
  174.       return this.confirmed ? this.fldNS.getText() : null;
  175.    }
  176.  
  177.    public String getPrefix() {
  178.       return this.confirmed ? this.fldPrefix.getText() : null;
  179.    }
  180.  
  181.    public Hashtable getMetaProps() {
  182.       Hashtable var1 = new Hashtable();
  183.       if (!this.confirmed) {
  184.          return null;
  185.       } else {
  186.          ExtraMetaDataUIIntf var2 = this.doc.getExtraMetaDataUI();
  187.          if (var2 == null) {
  188.             return var1;
  189.          } else {
  190.             for(int var3 = 0; var3 < this.metaPropFld.length; ++var3) {
  191.                String var4 = var2.getColumnMetaProp(5, var3);
  192.                String var5 = this.metaPropFld[var3].getText();
  193.                if (var5 != null && var5.length() > 0) {
  194.                   var1.put(var4, var5);
  195.                }
  196.             }
  197.  
  198.             return var1;
  199.          }
  200.       }
  201.    }
  202.  
  203.    public boolean confirmed() {
  204.       return this.confirmed;
  205.    }
  206. }
  207.